---
title: "pnpm catalog migration"
---

pnpm "*Catalogs*" are a [workspace](https://pnpm.io/workspaces) feature for defining dependency version ranges as reusable constants. Constants defined in catalogs can later be referenced in `package.json` files.

Codemod supports an automated pnpm catalog migration experience. This page provides resources you may need for a successful migration.

## Getting started

<CardGroup cols={2}>
<Card
    title="Understanding pnpm catalogs"
    icon={
    <svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
    <g clip-path="url(#clip0_6_13)">
    <path d="M24.5429 7.77394H16.9214V0.152466H24.5429V7.77394Z" fill="#F9AD00"/>
    <path d="M16.1578 7.77394H8.53629V0.152466H16.1578V7.77394Z" fill="#F9AD00"/>
    <path d="M7.77412 7.77394H0.152649V0.152466H7.77412V7.77394Z" fill="#F9AD00"/>
    <path d="M24.5429 16.1576H16.9214V8.53613H24.5429V16.1576Z" fill="#F9AD00"/>
    <path d="M16.1578 16.1576H8.53629V8.53613H16.1578V16.1576Z" fill="#4E4E4E"/>
    <path d="M16.1578 24.5412H8.53629V16.9197H16.1578V24.5412Z" fill="#4E4E4E"/>
    <path d="M24.5429 24.5412H16.9214V16.9197H24.5429V24.5412Z" fill="#4E4E4E"/>
    <path d="M7.77412 24.5412H0.152649V16.9197H7.77412V24.5412Z" fill="#4E4E4E"/>
    </g>
    <defs>
    <clipPath id="clip0_6_13">
    <rect width="25" height="24.9984" fill="white"/>
    </clipPath>
    </defs>
    </svg>
    }
    href="https://pnpm.io/catalogs"
>
</Card>
<Card
    title="pnpm catalog migration recipe"
    icon="cauldron"
    href="https://go.codemod.com/pnpm-catalog"
>
    
</Card>
</CardGroup>

## Migration Steps
<Steps>
    <Step title="Open workspace">
    Move to your target project workspace.
    </Step>
    <Step title="Run recipe">
        ```bash
        pnpx codemod pnpm/catalog
        ```
    </Step>
</Steps>